package com.dz.reflect;

import java.lang.reflect.Field;
import java.lang.reflect.Modifier;

public class ReflectDemo03 {
    public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException {
        // 1、拿到字节码
        Class c = Class.forName("com.dz.reflect.Pig");

        // 2、反射可以创建对象
        Object o = c.newInstance();// 用反射创建

        // 3、用反射拿到所有属性
        Field[] declaredFields = c.getDeclaredFields();
        for (Field field : declaredFields) {
            field.setAccessible(true);// 暴力
            System.out.println(field.getType().getSimpleName());
            if (field.getType().getSimpleName().equals("int")) {
                field.set(o, 1);
            } else if (field.getType().getSimpleName().equals("String")) {
                field.set(o, "1");
            } else if (field.getType().getSimpleName().equals("float")) {
                field.set(o, 1.2f);
            }
        }
        // 4、取属性的值
        for (Field declaredField1 : declaredFields) {
            declaredField1.setAccessible(true);
            System.out.println(declaredField1.get(o));
        }


        // 比较两个对象，属性的值是否一直，

    }
}
